import java.util.concurrent.ExecutionException;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import analyzer.Consultation;
import analyzer.SimpleBrainAnalyzer;
import analyzer.SimpleLiverAnalyzer;

import creature.organbuilder.OrganBuilder;
import creature.organbuilder.organs.Liver;
import entity.Pokemon;

public class AnalyzerTest {
	@Before
	public void setUp() throws Exception {
	}

	@Test
	public void liverHealthBad() throws ExecutionException {
		OrganBuilder liver = new Liver((byte) 2, (byte) -104, (byte) -5,
				(byte) 3, true);
		Pokemon pokemon = new Pokemon();
		pokemon.addToPokemonOrg(liver);
		SimpleLiverAnalyzer liverAnalyzer = new SimpleLiverAnalyzer();
		Consultation c = liverAnalyzer.work(pokemon);
		System.out.println(c.getDescription());
		Assert.assertEquals(
				c.getDescription(),
				"Результат роботи органу = -34. На орган слід звернути увагу, можуть бути серйозні проблеми! Вам слід звернути увагу на деякі аспекти роботи органу. Скористайтесь функцією виведення повного звіту роботи органу.");
	}

	@Test
	public void liverHealthGood() throws ExecutionException {
		OrganBuilder liver = new Liver((byte) 2, (byte) 104, (byte) 35,
				(byte) 3, true);
		Pokemon pokemon = new Pokemon();
		pokemon.addToPokemonOrg(liver);
		SimpleLiverAnalyzer liverAnalyzer = new SimpleLiverAnalyzer();
		Consultation c = liverAnalyzer.work(pokemon);
		System.out.println(c.getDescription());
		Assert.assertEquals(
				c.getDescription(),
				"Результат роботи органу = 45. Орган у дуже гарному стані! У Вас все чудово з заданим органом. Так тримати!");
	}

	@Test
	public void brainHealthNone() throws ExecutionException {
		OrganBuilder liver = new Liver((byte) 2, (byte) 104, (byte) 35,
				(byte) 3, true);
		Pokemon pokemon = new Pokemon();
		pokemon.addToPokemonOrg(liver);
		SimpleBrainAnalyzer brainAnalyzer = new SimpleBrainAnalyzer();
		Consultation c = brainAnalyzer.work(pokemon);
		System.out.println(c.getDescription());
		Assert.assertEquals(c.getDescription(), "Нема мозку((");
	}
}
